home *** CD-ROM | disk | FTP | other *** search
/ Inside Mac Games Volume 5 #8 / IMG 51 Vol 5-8.iso / Goodies / More For Your Games / Quake / MODs / Reaper Bots / Reaprb80.txt < prev    next >
Text File  |  1996-11-14  |  11KB  |  290 lines

  1. Title    : The Reaper Bot
  2. Filename : reaprb80.zip
  3. Version  : Beta 0.8
  4. Date     : 11/15/96
  5. Author   : Steven Polge
  6. Email    : polge@ix.netcom.com
  7. Credits  : id software, for making the only computer games I ever play, and for
  8.         releasing QuakeC
  9.        The QuakeC modifications included in this archive are entirely my
  10.         own design. 
  11.        Dennis Noordsji for the skins code concepts.
  12.  
  13. Build time: about 120 hours so far...
  14.  
  15. Type of Mod
  16. -----------
  17. Quake C  : yes
  18. Sound    : no
  19. MDL      : no  
  20.  
  21.  
  22. Format of QuakeC (if a Quake C Mod)
  23. -----------------------------------
  24. unified diff  : no
  25. context diff  : no
  26. .qc files     : no
  27. progs.dat     : yes
  28.  
  29.  
  30. Description of the Modification
  31. -------------------------------
  32.  
  33. This may be the most advanced bot opponent currently available.  It learns levels
  34.  as it plays them, picks up and uses all items, roams around.  It understands
  35.  doors, teleports, triggers, and buttons.  It will jump off ledges, and avoids
  36.  landing in lava (understanding the gravity level).  When fighting you, it picks the
  37.  best weapon it has, and strafes, circles or charges.  Variable skill levels are
  38.  provided (skill 3 is very tough).  
  39.  
  40. Note:  This bot does not cheat!  At higher skill levels, it rarely misses, and
  41.  shoots at the maximum rate allowed to players, but it never shoots faster than
  42.  allowed or causes more damage on hits than normal.  It also does not move
  43.  faster than players.
  44.  
  45. If the bot is too tough, try a lower skill level (default skill is 1).  If you
  46. play with skill level 1, the bots automatically adjust their difficulty.  You can
  47. pick any value between 0 and 3 inclusive, including fractional values (e.g.
  48. 1.4, 1.5, etc.).  To select skill, type 'skill n' at the console, where n is the
  49. value.   
  50.  
  51. To play with this bot, you should enable deathmatch either by starting quake
  52. with the -listen parameter, or by typing 'deathmatch 1' at the console, or
  53. by using the multiplayer game menu to start the game.  The included autoexec.cfg
  54.  (formerly reaper.cfg) will automatically set the deathmatch cvar to 1. 
  55.  
  56. The file autoexec.cfg (included) sets up aliases for common bot functions, and
  57. binds them to keys.  For example, hitting the key b will add a bot at the current
  58. skill level.  You can edit this file to suit your preferences.  The key bindings
  59. are shown below.  If you do not want to use this config file, rename it to
  60. something other than autoexec.cfg.
  61.  
  62. Changes from Beta 0.75 to Beta 0.8 are described in B08CHG.TXT, included
  63. in this archive.
  64.  
  65. Commands include:
  66. KEY 
  67. [            IMPULSE 200 - Increment skin (if skins support is set)
  68. ]        IMPULSE 201 - Decrement skin (if skins support is set)
  69. p        IMPULSE 202 - Toggle skins support - three settings
  70.                     (off, normal, skill skins)
  71.                     With skill skins mode, bot skin
  72.                     depends on its skill level
  73. b        IMPULSE 205 - add a bot (can do it repeatedly)
  74. n        IMPULSE 208 - add four bots
  75.         IMPULSE 210 - scores (bring up the console -
  76.                 hit the ~ key - to read)
  77.         IMPULSE 211 - remove all bots
  78. o        IMPULSE 212 - Toggle limited observer mode
  79.                 (you are invisible to bots unless you 
  80.                 attack them, but move normally)
  81.         IMPULSE 214 - update bots. Use when the 
  82.                 SV_GRAVITY or SV_MAXSPEED 
  83.                 server cvars are changed.
  84. v        IMPULSE 215 - Toggle verbose mode 
  85.                 (bots tell you what they're doing).
  86.         IMPULSE 218 - turn on restricted mode (only
  87.                 client 0 can add bots or become
  88.                 an observer)
  89.         IMPULSE 219 - turn on super restricted mode
  90.                 (no client can add bots or become
  91.                 an observer)
  92. m        IMPULSE 220 - normal scores (frag count)
  93.         IMPULSE 221 - update team colors (used to tell
  94.                 the bots on your team if you change
  95.                 colors)
  96. q        IMPULSE 222 - show top three scores (so you
  97.                 don't need to bring down the console
  98.         IMPULSE 1XX - Bounds the total number of bots
  99.                 + players to XX (XX must no
  100.                 greater than 15)  Enough bots to
  101.                 meet this bound are spawned, and
  102.                 they leave and come back as players
  103.                 enter and leave the server.
  104.  
  105.     SKILL N - Change skill level (N = 0 to 3, default
  106.             is 1)
  107.  
  108.     Note: Make sure your SV_MAXSPEED is not set too
  109.     high.  Bots use SV_MAXSPEED to determine their
  110.     speed.  The default is 320, and a higher setting will
  111.     make the bots move faster and look jerkier.
  112.  
  113.     I have included autoexec.cfg, which creates aliases for
  114.     the above commands and binds some common ones
  115.     to keys.  Look at autoexec.cfg to see what the aliases
  116.     are, and edit it to change the key bindings if you
  117.     want.  
  118.  
  119. TEAMPLAY
  120.     This release supports teamplay.  When teamplay is
  121.     on, IMPULSE 1XX no longer functions as above.  
  122.     All bots added with IMPULSE 205 or IMPULSE 208 
  123.     belong to the bot only team.  IMPULSE 1XX sets the 
  124.     number of bots on each player's team to XX (must be no 
  125.     greater than 15).  Bots on your team will have the same
  126.     color as you (and the same skin, if you're using skins).  
  127.  
  128. SKINS
  129.     No player.mdl is included with this archive.  If you want
  130.     to use skins, get a player.mdl with multiple skins and 
  131.     put it in a progs subdirectory to your reaper bot directory.
  132.     Recommended player.mdl files (and where to get them)
  133.     are listed in SKINSPEC.TXT.    
  134.     For more information on how the bots use skins and
  135.     available player.mdls, see SKINSPEC.TXT.
  136.  
  137. DEDICATED SERVER SUPPORT
  138.     Please read the DEDSERV.TXT readme included with this
  139.     archive.
  140.  
  141. Features Include:
  142.  
  143. * Skill levels ranging from 0 to 3 (including non-integer values) 
  144. which affect
  145.     - bot accuracy when shooting 
  146.     - bot yaw speed (how fast it tracks you)
  147.     - average bot re-fire rate
  148.     - bot reaction time, and pain time
  149.     - bot field of vision, and reaction to nearby noises
  150.     - whether bot leads you with grenades and rockets
  151. * Uses all player frames
  152. * Improved following AI 
  153.     - can handle following opponents around corners, through
  154.     doorways, doors, teleports, etc.
  155. * Dynamic level learning
  156.     - Bots build internal map of level as they play, and use
  157.     it to roam around, go find weapons, hunt opponents, etc.
  158. * Understands jumping
  159.     - predicts jumps based on current gravity level 
  160.     - won't jump into lava or slime
  161.     - will jump up onto low ledges or down, to go after goal
  162. * Combat AI
  163.     - charges, strafes, circles based on its weapon, enemy's 
  164.     weapon, the distance between them, and whether enemy
  165.     is running away.
  166.     - picks best weapon depending on range (only uses rocket 
  167.     launcher at close range if it doesn't have anything else 
  168.     good, and health+armor is high)
  169.     - will even if needed go after health, ammo, or a weapon 
  170.     in the middle of combat!
  171.     - trys to avoid combat if health or ammo low, and it 
  172.     thinks it can escape
  173.     - avoids combat with invulnerable enemies
  174. * Improved grenade and rocket aiming
  175.     - leads player at higher skill levels
  176.     - adjusts grenade aiming to compensate for trajectory 
  177.     (using current gravity     level)
  178.     - adjusts rocket aim to avoid lips and edges
  179. * Understands triggers and buttons
  180.     - Will go for the triggered entity when it shoots a trigger 
  181.     or presses a button.
  182.     - Doesn't go after doors, etc., which must be triggered 
  183.     (unless they're already open).
  184.     - Doesn't go after triggers or buttons which have already 
  185.     been activated.
  186. * Understands door, teleporters, secret doors, and wind tunnels
  187.     - Will fire at secret doors before going through
  188. * Chooses goals according to priorities depending on its current 
  189.     inventory, health, armor, etc.
  190.     - Understands and uses all weapons, ammo, powerups, etc.
  191.     - Won't keep going after an item if it can't reach it
  192.     - Will use internal map to go after items it wants but
  193.     can't see 
  194. * Up to 16 bots on a level
  195. * Multiplayer Server capability - deathmatch bots vs humans!
  196.       - No other files needed by the clients 
  197.     (they can use their original progs.dat).
  198. * Scoring - Impulse 210 gives a break out of kills & deaths 
  199.     versus bots and players
  200.     - scoring is 2 * kills - deaths - 2 * suicides
  201. * Limited observer mode - you are invisible to bots, but
  202. you walk around rather than flying.  Toggled on and off by
  203. Impulse 212.
  204. * Bot swims in water
  205.     - avoids drowning, even during combat
  206.     - understands whether it can swim to items
  207.     - can jump out of water
  208.     - chases enemies into water
  209.     - won't use lightning gun underwater unless
  210.     invincible
  211. * Same number of bots generated in new level after changelevel
  212. * Bots die in lava and slime, and drown if under water
  213. too long
  214. * Bots can telefrag or be telefragged
  215.  
  216. Features to be added by version 1.0
  217. * Observer Mode (improved) 
  218. * Learning AI w/ personalities - chooses camping, 
  219. charging, sniping based on previous successes/failures 
  220. - retreats when health is low, or bad relative weapons
  221. * Yaw bot model up and down
  222. * Merge w/ v1.06 Quake source
  223.  
  224. And more to come...
  225.  
  226. Known bugs
  227. * Occasional erroneous splash sound by bots, particularly 
  228. when spawning
  229.  
  230. How to Install the Modification
  231. -------------------------------
  232.  
  233. Create a directory called RPBOT as a subdirectory in your Quake directory
  234.  (parallel to the ID1 directory) move the PROGS.DAT file included in this archive
  235.  to the RPBOT directory.  To play, type QUAKE -GAME RPBOT from the Quake
  236.  directory.  This modification only works with the registered version of Quake.
  237.   Make sure you
  238. run deathmatch when you play with the bots- they don't play coop (either select
  239. multi-player, or type DEATHMATCH N at the console, where N = 1 or 2).  To change skill levels, type SKILL N at the console, where N is a value between
  240. 0 and 3 (inclusive).
  241.  
  242. Technical Details
  243. -----------------
  244.  
  245. The combat and local goal setting AI uses heuristics with fuzzy logic for
  246.  decision making.  I am currently working on supporting learned behaviour based
  247.  on combat success for the combat AI, as well as the hunting AI.
  248.  
  249. The roaming AI uses dynamically placed botpaths to move from place to place.
  250.   The botpath node placement is optimized to guarantee a valid path followable
  251.  by the bot, while bounding the number of botpath nodes.  Botpath routes are
  252.  dynamically merged to minimize the number of botpath nodes.  Multiple spanning
  253.  trees point in the upstream route direction for routing updates.  These routes
  254.  can be used to go to both static and moving goals (e.g. players).  Loop detection
  255.  and avoidance is implemented both for bots following the paths, and for routing
  256.  updates.  Route caching has been implemented to improve performance, and
  257.  to instantly provide the bot with the route to the "best" (based on distance and
  258.  type) item of a given class (e.g. health, armor, weapons).
  259.  
  260.  
  261. Author Information
  262. ------------------
  263.  
  264. This is my first publicly distributed quakeC patch.
  265. I design router software and protocols for a living.
  266.  
  267.  
  268. Copyright and Distribution Permissions
  269. --------------------------------------
  270.  
  271. The modifications included in this archive are Copyright 1996, Steven Polge.
  272.   The original
  273. QuakeC source is Copyright 1996, id software.
  274.  
  275. Authors MAY NOT use these modifications as a basis for other publicly or
  276.  commercially available work.
  277.  
  278. You may distribute this Quake modification in any electronic format as long as
  279.  all the files in this archive remain intact and unmodified and are distributed
  280.  together.
  281.  
  282.  
  283. Availability
  284. ------------
  285.  
  286. This modification is available from the following places:
  287.  
  288. FTP   : ftp.cdrom.com in \pub\quake\quakec\bots
  289.  
  290.